/*
 * Parametro.h
 *
 *  Created on: May 30, 2013
 *      Author: root
 */

#ifndef PARAMETRO_H_
#define PARAMETRO_H_

#include "model/clases/ComponentClases.h"

class Parametro : public ComponentClasses {

private:
	std::string tipoDato;
	std::string nombre;
	std::string valor;

public:
	Parametro(const std::string& tipoDato,const std::string& nombre,
	        const std::string& valor = "") : tipoDato(tipoDato), nombre(nombre), valor(valor) {}

	Parametro() : tipoDato("void"), nombre("param"), valor("") {}

	Parametro(const Parametro& parametro);

	virtual ~Parametro() {};

	std::string getTipoDato() const {
		return tipoDato;
	}

	std::string getNombre() const {
		return nombre;
	}

	std::string getValor() const {
	    return valor;
	}

	virtual void serialize(XmlWriter & writer_rep, XmlWriter & writer_comp);

	virtual void deserialize(XmlReader & reader) {};

	virtual void deserialize(XmlReader & reader, XmlReader & readerModel);

	virtual std::string description();
};

#endif /* PARAMETRO_H_ */
